package clienteBaseDatos;

import accesoBD.GenericQuery;
import accesoBD.OutputResultSet;
import accesoBD.QuerySupervisor;
import accesoBD.QueryTecnico;
import accesoBD.QueryUsuario;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * Cliente de introducción al uso del controlador y la query.
 * ATENCIÓN: el ejemplo es muy limitado, no puede usarse como aplicación.
 * @version 1.2
 * @author Juan Manuel Rodríguez González
 */
public class ClienteEjemplo {

    public static void main(String[] args) {
        try {
            GenericQuery query[] = new GenericQuery[3];
             BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
            ResultSet rs;
            String[] user = {"jmrgjuan@hotmail.com", "tecnicouno@mail.com", "system@system.es"};
            String[] pass = {"juanrg", "tec001", "auto"};

            System.out.println("INTENTO DE LOGIN");

            for (int i = 0; i < 3; i++) {
                query[i] = GenericQuery.login(user[i], pass[i]);
                System.out.println("query ROL: " + query[i]);

                if (!QueryUsuario.class.isInstance(query[i]) && !QueryTecnico.class.isInstance(query[i]) && !QuerySupervisor.class.isInstance(query[i])) {
                    System.out.println("CLASE INESPERADA: " + query[i]);
                }
            }

            // Opciones del usuario:
            // -- Ver partes creados
            rs = ((QueryUsuario) query[0]).getPartesDeUsuario();
            OutputResultSet.mostrarTodoConsola(rs);

            // -- Crear un parte
            //OutputResultSet.mostrarTodoConsola(((QueryUsuario) query[0]).getAparatos());
            String idAparato = "", descripcionParte = "";
            try {
                System.out.print("Introduzca el id del aparato: ");
                idAparato = bf.readLine();
                System.out.print("Describa en pocas palabras la incidencia: ");
                descripcionParte = bf.readLine();
            } catch (IOException ex) {
            }

        } catch (SQLException ex) {
            System.out.println("EXCEPCION: " + ex);
        } catch (ClassNotFoundException ex) {
            System.out.println("EXCEPCION: " + ex);
        }
    }
}
